<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>

    // var a = 10;

    // function fn(){
    //     var b = 20;
    //     // 子可以拿父
    //     console.log(a);
    //     console.log(b);
    // }
    // fn();

    // console.log(a);
    // // 父不可以拿子
    // console.log(b);


    // ========

    // 作用域链时，获取变量的规则
    // var a = "全局的a";
    // function fn1(){
    //     // var a = "fn1的a";
    //     function fn2(){
    //         // var a = "fn2的a";
    //         function fn3(){
    //             // var a = "fn3的a";
    //             console.log(a);
    //         }
    //         fn3();
    //     }
    //     fn2();
    // }
    // fn1();


    // ========

    // "use strict"

    // // 作用域链时，设置变量的规则
    // // var a = "全局的a";
    // function fn1(){
    //     // var a = "fn1的a";
    //     function fn2(){
    //         // var a = "fn2的a";
    //         function fn3(){
    //             // var a = "fn3的a";

    //             a = "hello";

    //             console.log(a);
    //         }
    //         fn3();
    //         console.log(a);
    //     }
    //     fn2();
    //     console.log(a);
    // }
    // fn1();
    // console.log(a);



    // ========


    // function fn(){
    //     var a = 10;
    //     console.log(a);
    // }
    // fn();
    // console.log(a)



    // =======

    // function box(){
    //     var a = 10;
    //     function fn1(){
    //         console.log(a);
    //     }
    //     function fn2(){
    //         console.log(a);
    //     }
    //     function fn3(){
    //         console.log(a);
    //     }
    //     fn1();
    //     fn2();
    //     fn3();
    // }
    // box();

    // ---------

    // (function(){
    //     console.log(1);
    // })();
    
</script>
</html>